This relates to integrated circuits and more particularly, to methods of using programmable integrated circuits for circuit design emulation purposes.
Programmable integrated circuits are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the computer-aided design tools generate configuration data. The configuration data is then loaded into memory elements to configure the programmable elements on the integrated circuit to perform the desired functions of the custom logic circuit.
In contrast to programmable integrated circuits, application-specific integrated circuits (ASICs) include hardwired circuits that are customized for a particular use rather than for general-purpose use. Since each ASIC is specifically designed for a target application, ASICs are more efficient in terms of performance and area compared to their programmable counterparts (i.e., programmable devices implementing the same target application will exhibit lower performance and larger circuit footprint).
Since ASICs have limited usage compared to general-purpose devices, each iteration of an ASIC design tends to be more costly. While it is possible to simulate an ASIC design entirely in software, it may generally be desirable to simulate the ASIC design on actual hardware before actually taping out the ASIC chip to help ensure that the ASIC design will behave as intended. This hardware simulation process is oftentimes referred to as “hardware emulation” or “ASIC emulation,” which involves loading the ASIC design under test on a programmable integrated circuit. Prototyping an ASIC design on a programmable device prior to taping out can help shorten the time to market and reduce cost.
It is within this context that the embodiments described herein arise.